.\"   $Id: getbddnodesupport.3,v 1.1 2002/03/18 11:26:50 ludo Exp $
.\" @(#)getbddnodesupport.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH GETBDDNODESUPPORT 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS"
.SH NAME
getbddnodesupport \- gives the variable support of a \fBbdd\fP node.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
void \(**getbddnodesupport( BddSystem, BddNode, Mode )
  bddsystem \(**BddSystem;
  bddnode   \(**BddNode;
  int        Mode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIBddSystem\fP
The \fBbdd\fP system.
.TP
\fIBddNode\fP
The \fBbdd\fP node.
.TP
\fIMode\fP
The type of support.
.SH DESCRIPTION
\fBgetbddnodesupport\fP gives the support of the \fBbdd\fP node \fIBddNode\fP
in the \fBbdd\fP system \fIBddSystem\fP.
If a null pointer is given, the default \fBbdd\fP system is used.
If \fIMode\fP is BDD_SUPPORT_CHAIN the support is returned using 
\fIchain_list\fP else it is returned using \fIptype_list\fP.
The support must be freed using the \fIfreechain\fP or \fIfreeptype\fP functions.
.br
.SH RETURN VALUE
\fBgetablexprsupport\fP returns a pointer to a \fIchain_list\fP or
a \fIptype_list\fP.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
   bddsystem  \(**BddSystem;
   bddcircuit \(**BddCircuit;
   bddnode    \(**BddNode;
   chain_list \(**Expr;
   chain_list \(**Support;
   chain_list \(**ScanSupport;
   bddindex       Index;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_AND,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Support = getablbddnodesupport( (bddsystem \(**0), BddNode, BDD_SUPPORT_CHAIN );
   for ( ScanSupport  = Support;
         ScanSupport != (chain_list \(**)0;
         ScanSupport  = ScanSupport->NEXT )
   {
     Index = (bddnode \(**)ScanSupport->INDEX;
     printf( "%s ", BddCircuit->NAME_IN[ Index - BDD_INDEX_MIN ] );
   }
   freechain( Support );
   destroybddsystem( (bddsystem \(**)0 );
   destroybddcircuit( (bddcircuit \(**)0 );
.ft R
.fi
.SH SEE ALSO
.BR bdd (1)


.so man1/alc_bug_report.1

